Day 24: GitLab CI/CD 基本概念與工作流程
Day 25: GitLab Runners 配置與使用
Day 26: 使用 GitLab CI/CD 進行原始碼掃描及套件掃描
Day 27: 使用 GitLab CI/CD 進行自動化測試
Day 28: 如何在 GitLab CI/CD 中實現持續部署 (CD)
Day 29: GitLab CI/CD 與 Kubernetes 的集成實踐
因為免費方案之硬體需求關係,此章節會以GCP作為雲端平台來操作。
GitLab Runner 提供兩種執行器:Shell Executor 和 Docker Executor。Shell Executor 在 GitLab Runner 主機上直接運行命令,適合需要直接操作主機環境的情況,配置簡單但可能與主機環境緊耦合。Docker Executor 則在 Docker 容器中運行 CI 任務,提供隔離的執行環境,可以使用不同的映像和工具,支持多種配置,但需要設置 Docker-in-Docker 或與 Docker Daemon 的連接。
因此最簡單粗暴就是採用Shell Executor
直接在ci腳本裡新增「deploy」的stage並撰寫需要執行的指令
stages:
  - deploy
variables:
  NGINX_IMAGE: nginx:latest
deploy:
  stage: deploy
  script:
    - docker pull $NGINX_IMAGE
    - docker run -d --name nginx-container -p 80:80 $NGINX_IMAGE
    - echo "Nginx container is running"
  only:
    - merge_requests
當符合「merge_requests」時觸發
進入deploy的階段,拉取nginx的映像檔並執行


修改build階段
build:
  stage: build
  tags:
    - test
  rules:
    - if: $CI_COMMIT_TAG_ENV == 'dev'
  script:
    - echo "CI_COMMIT_TAG=" && echo $CI_COMMIT_TAG
    - echo "CI_COMMIT_TAG_ENV=" && echo $CI_COMMIT_TAG_ENV
    - docker build -t $DOCKER_IMAGE:$CI_COMMIT_TAG .
    - docker push $DOCKER_IMAGE:$CI_COMMIT_TAG
    - echo "$ build CI_PROJECT_NAME $CI_COMMIT_TAG_ENV $CI_COMMIT_TAG Succeed"
這裡有一堆密密麻麻的參數
具體觸發pipeline也可通過gitlab介面執行
與腳本相符,正確傳參就可觸發ci
